In computer science and software engineering, the process by which a computer or virtual computer carries out the instructions of a computer program (or program) is referred to as “execution.” The term “run” can be used almost synonymously as execution. A related meaning of both “to run” and “to execute” can refer to the act of starting a computer program.
Typically, execution of a computer program requires storing it into memory. The process or act of loading the computer program into memory for execution can be referred to as “loading.” Loading can be accomplished by using a loading component (or “loader”). In a computer operating system, a loader can be a component that locates a given computer program (e.g., an application program, part of the operating system itself) from a storage device (e.g., hard disk) and loads it into main storage (e.g., Random Access Memory) for execution.
An application program can be comprised of many individual application program components. As such, those skilled in the art readily appreciate that execution of an application program could require loading many individual application components into memory for execution of the application program. Modern gaming environments provide an example of a computing environment where execution of a gaming application program (e.g., a game) can require loading many individual gaming application program components (or gaming components) into the memory of a gaming machine (unit or device) for execution to, for example, effectively provide a game (e.g., video poker game) to one or more individuals (players) for play in a gaming environment that may be subject to a number gaming regulations. To further elaborate, gaming machines are briefly discussed below.
Typically, a gaming machine utilizes a master controller to effectively control various combinations of devices that allow a player to play a game on the gaming machine and also encourage game play on the gaming machine. A game played on a gaming machine usually requires a player to input money or indicia of credit into the gaming machine, indicate a wager amount, and initiate playing a game of chance. These steps require the gaming machine to control input devices, such as bill validators and coin acceptors, to accept money into the gaming machine and recognize user inputs from devices, including key pads, button pads, card readers, and ticket readers, to determine the wager amount, and initiate game play. After game play has been initiated, the gaming machine determines the outcome of the game, presents the game outcome to the player and may dispense an award of some type depending on the outcome of the game. The operations described above may be carried out on the gaming machine when the gaming machine is operating as a “stand alone” unit and/or linked in a network of some type to a group of gaming machines.
As technology in the gaming industry progresses, more and more gaming services are being provided to gaming machines via communication networks that link groups of gaming machines to a remote computer, such as a host server, that provides one or more gaming services. As an example, gaming services that may be provided by a remote computer to a gaming machine via a communication network of some type include player tracking, accounting, cashless award ticketing, lottery, progressive games, and bonus games or prizes. These services and features are provided in addition to the games that are available for play on the gaming machines.
Given the extended use of the modern gaming machines, improved techniques for execution of the gaming applications (or games) would be highly useful. More generally, improved techniques for execution of computer programs would be useful.